package com.hs.ph.Dao.Impl;

import com.hs.ph.Dao.YzglDao;
import com.hs.ph.Entity.Spgl;
import com.hs.ph.Entity.Yzgl;
import com.hs.ph.Utils.JDBCDruidUtil;


import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class yzglDaoimpl implements YzglDao {

    @Override
    public int insert(Yzgl yzgl) {
        String sql="insert into yzgl values(?,?,?,?,?,?,null,?,?,?,?,?,?)";
        Object obj[]={
                new Date(),
                yzgl.getCourierStationAddress(),
                yzgl.getCourierStationCity(),
                yzgl.getCourierStationCommunityId(),
                yzgl.getCourierStationCommunityName(),
                yzgl.getCourierStationDistrict(),
                yzgl.getCourierStationImage(),
                yzgl.getCourierStationName(),
                yzgl.getCourierStationOrderCount(),
                yzgl.getCourierStationProvince(),
                yzgl.getCourierStationSort(),
                yzgl.getCourierStationStatus()
        };
        return JDBCDruidUtil.update(sql,obj);
    }

    @Override
    public int delete(int courierStationId) {
        String sql="delete from yzgl where courierStationId=?";
        Object obj[]={courierStationId};
        return JDBCDruidUtil.update(sql,obj);
    }

    @Override
    public int update(Yzgl yzgl) {
        String sql="update yzgl set courierStationAddress=?,courierStationCity=?,courierStationCommunityId=?,courierStationCommunityName=?,courierStationDistrict=?,courierStationName=?,courierStationOrderCount=?,courierStationProvince=?,courierStationSort=?,courierStationStatus=? where courierStationId=?";
        Object obj[]={
                yzgl.getCourierStationAddress(),
                yzgl.getCourierStationCity(),
                yzgl.getCourierStationCommunityId(),
                yzgl.getCourierStationCommunityName(),
                yzgl.getCourierStationDistrict(),
                yzgl.getCourierStationName(),
                yzgl.getCourierStationOrderCount(),
                yzgl.getCourierStationProvince(),
                yzgl.getCourierStationSort(),
                yzgl.getCourierStationStatus(),
                yzgl.getCourierStationId()
        };
        return JDBCDruidUtil.update(sql,obj);
    }

    @Override
    public int update1(String goodsId, String goodsStatus) {
        int id=Integer.parseInt(goodsId);
        int status=Integer.parseInt(goodsStatus);
        String sql="update yzgl set courierStationStatus=? where courierStationId=?";
        Object obj[]={status,id};
        return JDBCDruidUtil.update(sql,obj);
    }

    @Override
    public List<Yzgl> selectAll(Map<String, String> map) {
        List<Yzgl> list=new ArrayList<>();
        String sql="select * from yzgl where 1=1";
        List params=new ArrayList<>();
        //驿站查询
        String courierStationName=map.get("courierStationName");
        if (courierStationName!=null&&!"".equals(courierStationName)){
            sql+=" and courierStationName like ? ";
            params.add("%"+courierStationName+"%");
        }
        //小区查询
        String communityName=map.get("communityName");
        if (communityName!=null&&!"".equals(communityName)){
            sql+=" and courierStationCommunityName like ? ";
            params.add("%"+communityName+"%");
        }
        //时间查询
        String startTime=map.get("startTime");
        if (startTime!=null&&!"".equals(startTime)){
            sql+=" and addTime between ? and ? ";
            params.add(startTime);
            params.add(map.get("endTime"));
        }
        String pn=map.get("pageNum");
        if (pn!=null&&!"".equals(pn)){
            sql+=" limit ?,? ";
            int pageNum=Integer.parseInt(pn);
            int pageSize=Integer.parseInt(map.get("pageSize"));
            params.add((pageNum-1)*pageSize);
            params.add(pageSize);
        }
        Object[] obj=params.toArray();
        ResultSet res= JDBCDruidUtil.query(sql,obj);
        while (true){
            try {
                if (!res.next()) break;
                Yzgl yzgl=new Yzgl(
                        res.getDate(1),
                        res.getString(2),
                        res.getString(3),
                        res.getInt(4),
                        res.getString(5),
                        res.getString(6),
                        res.getInt(7),
                        res.getString(8),
                        res.getString(9),
                        res.getInt(10),
                        res.getString(11),
                        res.getInt(12),
                        res.getInt(13)
                );
                list.add(yzgl);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
        JDBCDruidUtil.close();
        return list;
    }

    @Override
    public int selectCount(Map<String, String> map) {
        int count=0;
        String sql="select count(1) from yzgl where 1=1";
        List params=new ArrayList();
        String courierStationName=map.get("courierStationName");
        if (courierStationName!=null&&!"".equals(courierStationName)){
            sql+=" and courierStationName like ? ";
            params.add("%"+courierStationName+"%");
        }
        //所属门店查询
        String courierStationCommunityName=map.get("courierStationCommunityName");
        if (courierStationCommunityName!=null&&!"".equals(courierStationCommunityName)){
            sql+=" and goodsShopName like ? ";
            params.add("%"+courierStationCommunityName+"%");
        }
        String startTime=map.get("startTime");
        if (startTime!=null&&!"".equals(startTime)){
            sql+=" and addTime between ? and ? ";
            params.add(startTime);
            params.add(map.get("endTime"));

        }
        Object[] obj=params.toArray();
        ResultSet res= JDBCDruidUtil.query(sql,obj);
        while (true){
            try {
                if (!res.next()) break;
                count =res.getInt(1);
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }


        }
        JDBCDruidUtil.close();
        return count;
    }
}
